package com.xinzhi.service.impl;

import com.xinzhi.mapper.ICardMapper;
import com.xinzhi.service.ICardService;
import com.xinzhi.utils.RedisUtils;
import com.xinzhi.utils.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class CardServiceImpl implements ICardService {
    @Autowired
    private RedisUtils redisUtil;

    @Override
    public Result verifyCard(String cardnumber) {
        // 根据卡号查询卡信息或绑卡信息
        Object cardInfo = redisUtil.get(cardnumber);
        //如果不为空，则说明该卡号已被绑定
        if (cardInfo != null) {
            return Result.error("该卡号已被绑定");
        }
        // 如果为空，则说明该卡号未被绑定
        return Result.ok("该卡号未被绑定");
    }
    // 根据用户的身份证和卡号将绑卡信息新增
    @Override
    public Result addBindCard(String username, String identiycard, String cardnumber) {
        // 参数校验
        if (username == null || identiycard == null || cardnumber == null)
            return Result.error("参数不能为空");
        // 查询用户是否已经绑定了该卡号
        Object bindInfo = redisUtil.get(cardnumber);
        if (bindInfo != null)
            return Result.error("该卡号已被绑定");
        // 查询用户是否已经绑定了该身份证
        Object userInfo = redisUtil.get(identiycard);
        if (userInfo != null) {
            return Result.error("该身份证已被绑定");
        }
        // 新增用户身份证信息
        redisUtil.set(username, identiycard);
        // 新增绑卡信息
        redisUtil.set(username,cardnumber);
        // 返回结果
        return Result.ok("绑卡成功");
    }
}
